Guest User

sSort

a guest
Apr 8th, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. /* sort.c */
  2.  
  3. #include <stdio.h>
  4. #define ROZMIAR 10
  5.  
  6. void sSort(const int*, int*);
  7. void show(const int*);
  8.  
  9. int main(void) {
  10.     int tab[ROZMIAR] = {-9,3,-8,-1,2,3,6,-8,21,4};
  11.     int tab2[ROZMIAR];
  12.    
  13.     sSort(tab, tab2);
  14.    
  15.     puts("Tablica przed sortowaniem to:");
  16.     show(tab);
  17.     puts("A po sortowaniu to:");
  18.     show(tab2);
  19.    
  20.     getchar();
  21.     return 0;
  22. }
  23.  
  24. void sSort(const int A[], int B[]) {
  25.     int lastiMin, i, j;
  26.     int iMin = 0;
  27.     int iMax = 0;
  28.    
  29.     for (i=0; i<ROZMIAR; i++) {
  30.         if (A[i] < A[iMin])
  31.             iMin = i;
  32.         if (A[i] > A[iMax])
  33.             iMax = i;
  34.     }
  35.     B[0] = A[iMin];
  36.     lastiMin = iMin;
  37.     for (j=0; j<ROZMIAR-1; j++) {
  38.         iMin = iMax;
  39.         for (i=0; i<ROZMIAR; i++)
  40.             if ( (A[i] < A[iMin] && A[i]>B[j]) ||
  41.                  (A[i] == B[j] && i > lastiMin) )
  42.                 iMin = i;
  43.         B[j+1] = A[iMin];
  44.         lastiMin = iMin;
  45.     }
  46. }
  47.  
  48. void show(const int A[]) {
  49.     int i;
  50.    
  51.     for (i=0; i<ROZMIAR; i++)
  52.         printf("%d ", A[i]);
  53.     putchar('\n');
  54. }
Advertisement
Add Comment
Please, Sign In to add comment